package com.yitao.client.dto.pay;

import com.skipper.base.dto.BaseDtoWithId;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.Date;


/**
 *
 *  @author skipper
 *  @date 2019-01-04
 *  @desc  如该dto不需要id继承 BaseDto 即可 如需id 则根据情况选择  BaseDtoWithId  或 BaseDtoWithStringId
 *  @see
 */

public class PayStreamDto extends BaseDtoWithId {



    /**
     * 业务类型 1:商城业务 2:采购业务
     */
    @ApiModelProperty("业务类型 1:商城业务 2:采购业务")
    private Integer businessType;


    /**
     * 支付平台类型 1:微信支付 2:支付宝，3:银联
     */
    @ApiModelProperty("支付平台类型 1:微信支付 2:支付宝，3:银联")
    private Integer payClientType;


    /**
     * 支付类型 1:用户付款 2:商户付款，3:商户退款
     */
    @ApiModelProperty("支付类型 1:用户付款 2:商户付款，3:商户退款")
    private Integer payType;


    /**
     * 支付交易类型 如 app，h5，扫码支付
     */
    @ApiModelProperty("支付交易类型 如 app，h5，扫码支付")
    private String tradeType;


    /**
     * 关联的平台订单id
     */
    @ApiModelProperty("关联的平台订单id")
    private Long orderId;


    /**
     * 关联的平台订单code
     */
    @ApiModelProperty("关联的平台订单code")
    private String orderCode;


    /**
     * 下单人用户id
     */
    @ApiModelProperty("下单人用户id")
    private Long userId;


    /**
     * 支付端交易号
     */
    @ApiModelProperty("支付端交易号")
    private String payTradeNo;


    /**
     * 支付总金额
     */
    @ApiModelProperty("支付总金额")
    private Long payTotalFee;


    /**
     * 支付现金金额
     */
    @ApiModelProperty("支付现金金额")
    private Long payCashFee;


    /**
     * 支付状态 0:未付款 1:已付款 2:已退款 3 未退款
     */
    @ApiModelProperty("支付状态 0:未付款 1:已付款 2:已退款 3 未退款")
    private Integer payStatus;


    /**
     * 交易快照
     */
    @ApiModelProperty("交易快照")
    private String payData;


    /**
     * 支付时间
     */
    @ApiModelProperty("支付时间")
    private Date payTime;


    /**
     * 创建人
     */
    @ApiModelProperty("创建人")
    private Long createBy;


    /**
     * 创建时间
     */
    @ApiModelProperty("创建时间")
    private Date createTime;

    @ApiModelProperty("商户退款流水号")
    private String noRefund; // 2019.04.29

    public String getNoRefund() {
        return noRefund;
    }

    public void setNoRefund(String noRefund) {
        this.noRefund = noRefund;
    }

    public Integer getBusinessType() {
        return businessType;
    }

    public void setBusinessType(Integer businessType) {
        this.businessType = businessType;
    }

    public Integer getPayClientType() {
        return payClientType;
    }

    public void setPayClientType(Integer payClientType) {
        this.payClientType = payClientType;
    }

    public Integer getPayType() {
        return payType;
    }

    public void setPayType(Integer payType) {
        this.payType = payType;
    }

    public String getTradeType() {
        return tradeType;
    }

    public void setTradeType(String tradeType) {
        this.tradeType = tradeType;
    }

    public Long getOrderId() {
        return orderId;
    }

    public void setOrderId(Long orderId) {
        this.orderId = orderId;
    }

    public String getOrderCode() {
        return orderCode;
    }

    public void setOrderCode(String orderCode) {
        this.orderCode = orderCode;
    }

    public Long getUserId() {
        return userId;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }

    public String getPayTradeNo() {
        return payTradeNo;
    }

    public void setPayTradeNo(String payTradeNo) {
        this.payTradeNo = payTradeNo;
    }

    public Long getPayTotalFee() {
        return payTotalFee;
    }

    public void setPayTotalFee(Long payTotalFee) {
        this.payTotalFee = payTotalFee;
    }

    public Long getPayCashFee() {
        return payCashFee;
    }

    public void setPayCashFee(Long payCashFee) {
        this.payCashFee = payCashFee;
    }

    public Integer getPayStatus() {
        return payStatus;
    }

    public void setPayStatus(Integer payStatus) {
        this.payStatus = payStatus;
    }

    public String getPayData() {
        return payData;
    }

    public void setPayData(String payData) {
        this.payData = payData;
    }

    public Date getPayTime() {
        return payTime;
    }

    public void setPayTime(Date payTime) {
        this.payTime = payTime;
    }

    public Long getCreateBy() {
        return createBy;
    }

    public void setCreateBy(Long createBy) {
        this.createBy = createBy;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }
}